语种识别功能用于识别音频中语言种类,目前支持中、英、粤三个语种。
使用须知
支持的输入格式:PCM编码(无压缩的PCM或WAV文件)、16 bit采样位数、单声道(mono)。
音频时长限制小于60秒,建议实际有效时长大于5秒。
支持的音频采样率:8000 Hz。
服务地址
访问类型 | 说明 | URL |
外网访问 | 所有服务器均可使用外网访问URL(SDK中默认设置了外网访问URL,无需您设置)。 | wss://nls-gateway-cn-shanghai.aliyuncs.com/ws/v1 |
阿里云上海ECS内网访问 | 使用阿里云上海ECS(ECS地域为华东2(上海)),可使用内网访问URL。 ECS的经典网络不能访问AnyTunnel,即不能在内网访问语音服务;如果希望使用AnyTunnel,需要创建专有网络在其内部访问。 说明
| ws://nls-gateway-cn-shanghai-internal.aliyuncs.com:80/ws/v1 |
交互流程
1. 鉴权
客户端在与服务端建立WebSocket连接时,使用Token进行鉴权。Token获取请参见获取Token概述。
2. 开始检测
客户端发起请求,服务端确认请求有效。其中在请求消息中进行参数设置,各参数通过SDK中CommonRequest对象的相关set方法设置,含义如下。
参数名称 | 参数类型 | 参数说明 |
namespace | String | 命名空间,请在创建CommonRequest时设置为LanguageIdentification。 |
format | String | 音频编码格式,默认值:PCM。支持的格式:PCM、WAV。 |
sample_rate | Integer | 音频采样率,默认值:8000,单位:Hz。 |
language_type | String | 语种类型。
|
3. 接收识别结果
客户端循环发送语音数据,持续接收识别结果。
onEvent事件表示服务端检测到声音事件,举例如下:
{ "header":{ "namespace":"LanguageIdentification", "name":"TaskResult", "status":20000000, "message_id":"6b97ae72cf434e19aa797996fad9****", "task_id":"ce70e356743b47b9b80dc283bdf0****", "status_text":"Gateway:SUCCESS:Success." }, "payload":{ "language":"engl", "score":-0.5 } }
header对象参数说明:
参数名称
参数类型
参数说明
namespace
String
消息所属的命名空间。
name
String
消息名称,TaskResult表示一个音频事件。
status
Integer
状态码,表示请求是否成功,具体请参见服务状态码。
status_text
String
状态消息。
task_id
String
任务全局唯一ID,请记录该值,便于排查问题。
message_id
String
本次消息的ID。
payload对象参数说明:
参数名称
参数类型
参数说明
type
Integer
语种。
mand:中文
engl:英文
cant:粤语
Empty:表示未识别出语种
score
Float
当前结果的置信度,取值范围:[-1000.0,0.0]。值越大表示置信度越高。
4. 结束识别
通知服务端语音数据发送完成,服务端识别结束后通知客户端检测完毕。
服务状态码
在服务的每一次响应中,都包含status字段,即服务状态码。通用错误码、网关错误码、配置错误码各种取值含义如下。
通用错误码
错误码
原因
解决办法
40000001
身份认证失败
检查使用的令牌是否正确,是否过期。
40000002
无效的消息
检查发送的消息是否符合要求。
40000004
空闲超时
确认是否长时间(10秒)没有发送数据到服务端。
40000005
请求数量过多
检查是否超过了并发连接数或者每秒钟请求数。如果超过并发数,建议从免费版升级到商用版,或者商用版扩容并发资源。
40000000
默认的客户端错误码
检查对应的错误消息。
40000010
试用期已结束,并且未开通商用版、或账号欠费。
请登录控制台确认服务开通状态以及账户余额。
41010120
客户端超时错误
客户端连续10秒及以上没有发送数据,导致客户端超时错误。
41160001
采样率参数错误
检查采样率参数设置。
41160002
音频格式参数设置错误
检查音频格式参数设置。
41160003
音频解码失败
检查音频格式是否正常。
41160004
音频时长过长
检查音频是否超过60秒。
网关错误码
错误码
原因
解决办法
40010001
不支持的接口
请升级到最新的SDK。
40010002
不支持的指令
请升级到最新的SDK。
40010003
无效的指令
请升级到最新的SDK。
40010004
客户端提前断开连接
检查是否在请求正常完成之前关闭了连接。
40010005
任务状态错误
发送了当前任务状态不能处理的指令。
配置错误码
错误码
原因
解决办法
40020105
应用不存在
解析路由时找不到应用。
40020106
Appkey和Token不匹配
检查应用Appkey是否正确,是否与令牌归属同一个账号。
40020503
RAM用户(子账号)鉴权失败
使用阿里云账号对调用的RAM用户(子账号)授权POP API的访问权限。